home *** CD-ROM | disk | FTP | other *** search
- /*
-
- SolveRubiksCube
- Copyright (c) 1994 J Robert Boonstra
-
- */
-
- #pragma options(honor_register,assign_registers)
-
- #include "rubik.h"
- #include "transform.h"
-
- void SolveTopEdgesLB(register RubiksCube *rub)
- {
-
- /*
- * Find the top-back edge cube, and move it into the
- * proper position.
- */
- if (UB_U == U && UB_B == B) { ;/* correct as is */
- } else if (UF_U == B && UF_F == U) { F2D3L1B3L3;
- } else if (UR_U == B && UR_R == U) { R1B1;
- } else if (UB_U == B && UB_B == U) { B2D1L1B3L3;
- } else if (UL_U == B && UL_L == U) { L3B3;
- } else if (RF_F == B && RF_R == U) { F1D2F3B2;
- } else if (RB_R == B && RB_B == U) { R1D1R3B2;
- } else if (LB_B == B && LB_L == U) { B3;
- } else if (LF_L == B && LF_F == U) { F3D3F1L1B3L3;
- } else if (DF_D == B && DF_F == U) { D3L1B3L3;
- } else if (DR_D == B && DR_R == U) { R3B1R1;
- } else if (DB_D == B && DB_B == U) { D1L1B3L3;
- } else if (DL_D == B && DL_L == U) { L1B3L3;
- } else if (UF_U == U && UF_F == B) { F2D2B2;
- } else if (UR_U == U && UR_R == B) { R2D1B2;
- } else if (UL_U == U && UL_L == B) { L2D3B2;
- } else if (RF_F == U && RF_R == B) { F1D3F3L1B3L3;
- } else if (RB_R == U && RB_B == B) { B1;
- } else if (LB_B == U && LB_L == B) { B1D1L1B3L3;
- } else if (LF_L == U && LF_F == B) { L2B3L2;
- } else if (DF_D == U && DF_F == B) { D2B2;
- } else if (DR_D == U && DR_R == B) { D1B2;
- } else if (DB_D == U && DB_B == B) { B2;
- } else if (DL_D == U && DL_L == B) { D3B2;
- }
- /*
- * Find the top-left edge cube, and move it into the
- * proper position.
- */
- if (UL_U == U && UL_L == L) {; /* correct as is */
- } else if (UF_U == L && UF_F == U) { F3L3;
- } else if (UR_U == L && UR_R == U) { R2D3F1L3F3;
- } else if (UB_U == L && UB_B == U) { B1L1;
- } else if (UL_U == L && UL_L == U) { L2D1F1L3F3;
- } else if (UF_U == U && UF_F == L) { F2D3L2;
- } else if (UR_U == U && UR_R == L) { R2D2L2;
- } else if (UB_U == U && UB_B == L) { B2D1L2;
- } else if (RF_F == L && RF_R == U) { R3D3R1F1L3F3;
- } else if (RB_R == L && RB_B == U) { R1D2R3L2;
- } else if (LB_B == L && LB_L == U) { B1D1B3L2;
- } else if (LF_L == L && LF_F == U) { L3;
- } else if (RF_F == U && RF_R == L) { F2L3F2;
- } else if (RB_R == U && RB_B == L) { R1D3R3F1L3F3;
- } else if (LB_B == U && LB_L == L) { L1;
- } else if (LF_L == U && LF_F == L) { L1D1F1L3F3;
- } else if (DF_D == L && DF_F == U) { F1L3F3;
- } else if (DR_D == L && DR_R == U) { D3F1L3F3;
- } else if (DB_D == L && DB_B == U) { B3L1B1;
- } else if (DL_D == L && DL_L == U) { D1F1L3F3;
- } else if (DF_D == U && DF_F == L) { D3L2;
- } else if (DR_D == U && DR_R == L) { D2L2;
- } else if (DB_D == U && DB_B == L) { D1L2;
- } else if (DL_D == U && DL_L == L) { L2;
- }
- }